package com.lin.operatorlogrecord.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lin.operatorlogrecord.entity.constant.GlobalConstant;
import com.lin.operatorlogrecord.entity.enums.LogTypeEnum;
import com.lin.operatorlogrecord.entity.enums.ObjectTypeEnum;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

/**
 * @Author: chenghao.lin
 * @Date: 2023/09/25
 * @Description:
 */
@Getter
@Setter
public class OperatorLogVO {

    /**
     * 主键，不支持为null
     */
    private String objId;

    /**
     * 日志类型，不支持为null
     */
    private LogTypeEnum type;

    /**
     * 操作对象Id
     */
    private String operatorObjId;

    /**
     * 操作对象名称
     */
    private String operatorObjName;

    /**
     * 操作对象类型
     */
    private ObjectTypeEnum operatorObjType;

    /**
     * 操作内容
     */
    private String content;

    /**
     * 用户Id
     */
    private String userId;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 服务器开始处理时间
     */
    @JsonFormat(pattern = GlobalConstant.PATTERN_DATE_TIME, timezone = GlobalConstant.TIMEZONE )
    private LocalDateTime startTime;

    /**
     * 服务器处理结束时间
     */
    @JsonFormat(pattern = GlobalConstant.PATTERN_DATE_TIME, timezone = GlobalConstant.TIMEZONE )
    private LocalDateTime endTime;

    /**
     * 操作是否完成
     */
    private Boolean hasFinish;

    /**
     * 操作失败原因
     */
    private String failReason;
}
